home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / gemfsc20 / gemfsc20.lzh / GEMFBIND / VRCPYFM.S < prev    next >
Text File  |  1993-03-16  |  2KB  |  78 lines

  1. ;*========================================================================
  2. ;* VDIFAST Public Domain VDI bindings.
  3. ;*========================================================================
  4.  
  5.  
  6. ;*------------------------------------------------------------------------
  7. ;* Copy raster transparent.
  8. ;* Copy raster opaque.
  9. ;*    These functions are pretty similar, so they're kludged together here.
  10. ;*------------------------------------------------------------------------
  11.  
  12.           globl     _vrt_cpyfm
  13. _vrt_cpyfm:
  14. ;    .cargs    #8,handle.w,wrmode.w,pxy.l,psource.l,pdest.l,color.l
  15.  
  16. handle      =         8
  17. wrmode      =         10
  18. pxy       =         12
  19. psource   =         16
  20. pdest      =         20
  21. color      =         24
  22.  
  23.           link        a6,#0
  24.  
  25.           moveq.l    #121,d0             ;* Function code = copy transparent
  26.           moveq.l    #3,d1                ;* Number of intin words = 3.
  27.           move.l    color(a6),a0        ;* Get the pointer to the 2-word
  28.           move.l    (a0),-(sp)            ;* color array, copy values to the
  29.           move.w    wrmode(a6),-(sp)    ;* stack, add the writing mode.
  30.           move.l    sp,a0                ;* Save a pointer to intin.
  31.           bra.b     vr_cpyfm            ;* Continue at common point below.
  32.  
  33.           globl     _vro_cpyfm
  34. _vro_cpyfm:
  35.  
  36. ;    .cargs    #8,handle.w,wrmode.w,pxy.l,psource.l,pdest.l
  37.  
  38. handle      =         8
  39. wrmode      =         10
  40. pxy       =         12
  41. psource   =         16
  42. pdest      =         20
  43.  
  44.           link        a6,#0
  45.  
  46.           moveq.l    #109,d0             ;* Function code = copy opaque.
  47.           moveq.l    #1,d1                ;* Number of intin words = 1.
  48.           lea        wrmode(a6),a0        ;* Save a pointer to intin.
  49. vr_cpyfm:
  50. ;    .cargs    #8,handle.w,wrmode.w,pxy.l,psource.l,pdest.l ;* This is dup'd here due to local symbol scope being trashed by the vr_cpyfm label.
  51.  
  52. handle      =         8
  53. wrmode      =         10
  54. pxy       =         12
  55. psource   =         16
  56. pdest      =         20
  57.  
  58.  
  59.           move.l    pdest(a6),-(sp)     ;* contrl[9-10] -> dest mfdb.
  60.           move.l    psource(a6),-(sp)    ;* contrl[7-8]    -> source mfdb.
  61.  
  62. ;          VContrl    d0,,#4,d1            ;* Setup the rest of the contrl stuff.
  63.           move.w    handle(a6),-(sp)    ; contrl[6]
  64.           clr.l     -(sp)                ; contrl[5,4]
  65.           move.w    d1,-(sp)            ; contrl[3]
  66.           subq.l    #2,sp                ; contrl[2]
  67.           move.w    #4,-(sp)            ; contrl[1]
  68.           move.w    d0,-(sp)            ; contrl[0]
  69.  
  70.           subq.l    #8,sp                ;* -> ptsout, intout
  71.           move.l    pxy(a6),-(sp)        ;* -> ptsin
  72.           move.l    a0,-(sp)            ;* -> intin
  73.           pea        16(sp)                ;* -> contrl
  74.  
  75.           jmp        vdicall
  76.  
  77.           end
  78.